[INFO] cloning repository https://github.com/nicktretyakov/marketML
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nicktretyakov/marketML" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnicktretyakov%2FmarketML", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnicktretyakov%2FmarketML'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 05eb7f42bd663736debf411789739e3e6dd24e83
[INFO] checking nicktretyakov/marketML against master#cb40c25f6aebb637163d26bf76a680ed6e5d1eda for pr-156157
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnicktretyakov%2FmarketML" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nicktretyakov/marketML
[INFO] finished tweaking git repo https://github.com/nicktretyakov/marketML
[INFO] tweaked toml for git repo https://github.com/nicktretyakov/marketML written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nicktretyakov/marketML on toolchain cb40c25f6aebb637163d26bf76a680ed6e5d1eda
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cb40c25f6aebb637163d26bf76a680ed6e5d1eda" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nicktretyakov/marketML already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cb40c25f6aebb637163d26bf76a680ed6e5d1eda" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded validator_derive v0.16.0
[INFO] [stderr]   Downloaded validator v0.16.1
[INFO] [stderr]   Downloaded validator_types v0.16.0
[INFO] [stderr]   Downloaded sqlx v0.7.4
[INFO] [stderr]   Downloaded sqlx-sqlite v0.7.4
[INFO] [stderr]   Downloaded sqlx-core v0.7.4
[INFO] [stderr]   Downloaded sqlx-postgres v0.7.4
[INFO] [stderr]   Downloaded sqlx-mysql v0.7.4
[INFO] [stderr]   Downloaded sqlx-macros-core v0.7.4
[INFO] [stderr]   Downloaded sqlx-macros v0.7.4
[INFO] [stderr]   Downloaded redis v0.24.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cb40c25f6aebb637163d26bf76a680ed6e5d1eda" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4d217518cfe17b4984ab3e9ded4ef38ee16f833665014aaecca790a3327de161
[INFO] running `Command { std: "docker" "start" "-a" "4d217518cfe17b4984ab3e9ded4ef38ee16f833665014aaecca790a3327de161", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4d217518cfe17b4984ab3e9ded4ef38ee16f833665014aaecca790a3327de161", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4d217518cfe17b4984ab3e9ded4ef38ee16f833665014aaecca790a3327de161", kill_on_drop: false }`
[INFO] [stdout] 4d217518cfe17b4984ab3e9ded4ef38ee16f833665014aaecca790a3327de161
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cb40c25f6aebb637163d26bf76a680ed6e5d1eda" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 19719749337cc622742776ce10f1fe99d4599ffeb367ba658153e640a185283b
[INFO] running `Command { std: "docker" "start" "-a" "19719749337cc622742776ce10f1fe99d4599ffeb367ba658153e640a185283b", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling unicode_categories v0.1.1
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling sqlformat v0.2.6
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]    Compiling validator_types v0.16.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking idna v0.4.0
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking sha1_smol v1.0.1
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling validator_derive v0.16.0
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking validator v0.16.1
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]    Compiling sqlx-core v0.7.4
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]    Compiling sqlx-postgres v0.7.4
[INFO] [stderr]     Checking redis v0.24.0
[INFO] [stderr]    Compiling sqlx-macros-core v0.7.4
[INFO] [stderr]    Compiling sqlx-macros v0.7.4
[INFO] [stderr]     Checking sqlx v0.7.4
[INFO] [stderr]     Checking market v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]  --> src/domain/entities/product.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Product {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     description: Option<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Product` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]  --> src/domain/entities/product.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Product {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     description: Option<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Product` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error::*`
[INFO] [stdout]  --> src/core/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use error::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `repository::*`
[INFO] [stdout]  --> src/core/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use repository::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `event_bus::*`
[INFO] [stdout]  --> src/core/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use event_bus::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `concurrency::*`
[INFO] [stdout]  --> src/core/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use concurrency::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OrderItem`, `OrderStatus`, and `Order`
[INFO] [stdout]  --> src/domain/aggregates/mod.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use order::{Order, OrderStatus, OrderItem};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error::*`
[INFO] [stdout]  --> src/core/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use error::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `repository::*`
[INFO] [stdout]  --> src/core/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use repository::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `event_bus::*`
[INFO] [stdout]  --> src/core/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use event_bus::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `concurrency::*`
[INFO] [stdout]  --> src/core/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use concurrency::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OrderItem`, `OrderStatus`, and `Order`
[INFO] [stdout]  --> src/domain/aggregates/mod.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use order::{Order, OrderStatus, OrderItem};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Concurrency` is never constructed
[INFO] [stdout]   --> src/core/error.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum DomainError {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     Concurrency(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DomainError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ErrorHandler` is never used
[INFO] [stdout]   --> src/core/error.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub trait ErrorHandler: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete` is never used
[INFO] [stdout]  --> src/core/repository.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Repository<T, ID>: Send + Sync {
[INFO] [stdout]   |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 8 |     async fn delete(&self, id: &ID) -> DomainResult<()>;
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Findable` is never used
[INFO] [stdout]   --> src/core/repository.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Findable<T, Criteria>: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EventSourced` is never used
[INFO] [stdout]   --> src/core/repository.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub trait EventSourced: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DomainEvent` is never used
[INFO] [stdout]  --> src/core/event_bus.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait DomainEvent: Clone + Send + Sync + 'static {
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `name` are never read
[INFO] [stdout]   --> src/core/event_bus.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Created { id: String, name: String },
[INFO] [stdout]    |     -------   ^^          ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProductEvent` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `discount` are never read
[INFO] [stdout]   --> src/core/event_bus.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 |     DiscountApplied { id: String, discount: f64 },
[INFO] [stdout]    |     ---------------   ^^          ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProductEvent` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Updated` and `Deleted` are never constructed
[INFO] [stdout]   --> src/core/event_bus.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum ProductEvent {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 12 |     Created { id: String, name: String },
[INFO] [stdout] 13 |     Updated { id: String, price: f64 },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 14 |     DiscountApplied { id: String, discount: f64 },
[INFO] [stdout] 15 |     Deleted { id: String },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProductEvent` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Created`, `Paid`, `Shipped`, and `Cancelled` are never constructed
[INFO] [stdout]   --> src/core/event_bus.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum OrderEvent {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 20 |     Created { id: String, user_id: String, total: f64 },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 21 |     Paid { id: String },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 22 |     Shipped { id: String },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 23 |     Cancelled { id: String },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderEvent` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `publish_order`, `subscribe_product`, and `subscribe_order` are never used
[INFO] [stdout]   --> src/core/event_bus.rs:59:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait EventBus: Send + Sync {
[INFO] [stdout]    |           -------- methods in this trait
[INFO] [stdout] 58 |     async fn publish_product(&self, event: ProductEvent);
[INFO] [stdout] 59 |     async fn publish_order(&self, event: OrderEvent);
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 60 |     fn subscribe_product(&self) -> broadcast::Receiver<ProductEvent>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     fn subscribe_order(&self) -> broadcast::Receiver<OrderEvent>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `order_tx` is never read
[INFO] [stdout]   --> src/core/event_bus.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct InMemoryEventBus {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 65 |     product_tx: broadcast::Sender<ProductEvent>,
[INFO] [stdout] 66 |     order_tx: broadcast::Sender<OrderEvent>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RateLimiter` is never constructed
[INFO] [stdout]  --> src/core/concurrency.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct RateLimiter {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `acquire` are never used
[INFO] [stdout]   --> src/core/concurrency.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl RateLimiter {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(max_concurrent: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub async fn acquire(&self) -> tokio::sync::SemaphorePermit<'_> {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShardedCache` is never constructed
[INFO] [stdout]   --> src/core/concurrency.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ShardedCache<K, V> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used
[INFO] [stdout]   --> src/core/concurrency.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | / impl<K, V> ShardedCache<K, V>
[INFO] [stdout] 27 | | where
[INFO] [stdout] 28 | |     K: std::hash::Hash + Eq + Clone + Send + Sync + 'static,
[INFO] [stdout] 29 | |     V: Clone + Send + Sync + 'static,
[INFO] [stdout]    | |_____________________________________- associated items in this implementation
[INFO] [stdout] 30 |   {
[INFO] [stdout] 31 |       pub fn new(max_concurrent: usize) -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |       pub async fn get(&self, key: &K) -> Option<V> {
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |       pub async fn set(&self, key: K, value: V) {
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]  --> src/domain/entities/product.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Product {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     description: Option<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Product` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_discount`, `update_stock`, and `restock` are never used
[INFO] [stdout]   --> src/domain/entities/product.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Product {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn remove_discount(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn update_stock(&mut self, quantity: u32, expected_version: u64) -> DomainResult<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn restock(&mut self, quantity: u32) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]   --> src/domain/value_objects.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl EntityId {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub fn parse(s: &str) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EUR` and `RUB` are never constructed
[INFO] [stdout]   --> src/domain/value_objects.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum Currency {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 30 |     USD,
[INFO] [stdout] 31 |     EUR,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 32 |     RUB,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Currency` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `currency` and `add` are never used
[INFO] [stdout]   --> src/domain/value_objects.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Money {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn currency(&self) -> &Currency {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn add(&self, other: &Money) -> Result<Money, String> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `deactivate` is never used
[INFO] [stdout]    --> src/domain/value_objects.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Discount {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn deactivate(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OrderStatus` is never used
[INFO] [stdout]  --> src/domain/aggregates/order.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum OrderStatus {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrderItem` is never constructed
[INFO] [stdout]   --> src/domain/aggregates/order.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct OrderItem {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Order` is never constructed
[INFO] [stdout]   --> src/domain/aggregates/order.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Order {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/domain/aggregates/order.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Order {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 35 |     pub fn create(user_id: EntityId) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn id(&self) -> &EntityId { &self.id }
[INFO] [stdout]    |            ^^
[INFO] [stdout] 49 |     pub fn user_id(&self) -> &EntityId { &self.user_id }
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 50 |     pub fn status(&self) -> &OrderStatus { &self.status }
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 51 |     pub fn total(&self) -> &Money { &self.total }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 52 |     pub fn items(&self) -> &[OrderItem] { &self.items }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 53 |     
[INFO] [stdout] 54 |     pub fn add_item(&mut self, product_id: EntityId, product_name: String, 
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn confirm(&mut self) -> DomainResult<()> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn pay(&mut self) -> DomainResult<()> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn cancel(&mut self) -> DomainResult<()> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_by_name` and `find_with_discount` are never used
[INFO] [stdout]   --> src/application/services/product_service.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait ProductRepository: Repository<Product, String> + Send + Sync {
[INFO] [stdout]    |           ----------------- methods in this trait
[INFO] [stdout] 12 |     async fn find_by_name(&self, name: &str) -> DomainResult<Vec<Product>>;
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 13 |     async fn find_with_discount(&self) -> DomainResult<Vec<Product>>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `db_pool`, `redis`, and `event_bus` are never read
[INFO] [stdout]   --> src/interfaces/api/state.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct AppState {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  9 |     pub product_service: Arc<ProductService<PostgresProductRepository>>,
[INFO] [stdout] 10 |     pub db_pool: PgPool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 11 |     pub redis: RedisClient,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 12 |     pub event_bus: Arc<InMemoryEventBus>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_middleware` is never used
[INFO] [stdout]  --> src/interfaces/middleware/auth.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub async fn auth_middleware(
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthenticatedUser` is never constructed
[INFO] [stdout]   --> src/interfaces/middleware/auth.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct AuthenticatedUser(pub String);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Concurrency` is never constructed
[INFO] [stdout]   --> src/core/error.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum DomainError {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     Concurrency(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DomainError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ErrorHandler` is never used
[INFO] [stdout]   --> src/core/error.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub trait ErrorHandler: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete` is never used
[INFO] [stdout]  --> src/core/repository.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Repository<T, ID>: Send + Sync {
[INFO] [stdout]   |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 8 |     async fn delete(&self, id: &ID) -> DomainResult<()>;
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Findable` is never used
[INFO] [stdout]   --> src/core/repository.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Findable<T, Criteria>: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EventSourced` is never used
[INFO] [stdout]   --> src/core/repository.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub trait EventSourced: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DomainEvent` is never used
[INFO] [stdout]  --> src/core/event_bus.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait DomainEvent: Clone + Send + Sync + 'static {
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `name` are never read
[INFO] [stdout]   --> src/core/event_bus.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Created { id: String, name: String },
[INFO] [stdout]    |     -------   ^^          ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProductEvent` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `discount` are never read
[INFO] [stdout]   --> src/core/event_bus.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 |     DiscountApplied { id: String, discount: f64 },
[INFO] [stdout]    |     ---------------   ^^          ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProductEvent` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Updated` and `Deleted` are never constructed
[INFO] [stdout]   --> src/core/event_bus.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum ProductEvent {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 12 |     Created { id: String, name: String },
[INFO] [stdout] 13 |     Updated { id: String, price: f64 },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 14 |     DiscountApplied { id: String, discount: f64 },
[INFO] [stdout] 15 |     Deleted { id: String },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProductEvent` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Created`, `Paid`, `Shipped`, and `Cancelled` are never constructed
[INFO] [stdout]   --> src/core/event_bus.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum OrderEvent {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 20 |     Created { id: String, user_id: String, total: f64 },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 21 |     Paid { id: String },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 22 |     Shipped { id: String },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 23 |     Cancelled { id: String },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderEvent` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `publish_order`, `subscribe_product`, and `subscribe_order` are never used
[INFO] [stdout]   --> src/core/event_bus.rs:59:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait EventBus: Send + Sync {
[INFO] [stdout]    |           -------- methods in this trait
[INFO] [stdout] 58 |     async fn publish_product(&self, event: ProductEvent);
[INFO] [stdout] 59 |     async fn publish_order(&self, event: OrderEvent);
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 60 |     fn subscribe_product(&self) -> broadcast::Receiver<ProductEvent>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     fn subscribe_order(&self) -> broadcast::Receiver<OrderEvent>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `order_tx` is never read
[INFO] [stdout]   --> src/core/event_bus.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct InMemoryEventBus {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 65 |     product_tx: broadcast::Sender<ProductEvent>,
[INFO] [stdout] 66 |     order_tx: broadcast::Sender<OrderEvent>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RateLimiter` is never constructed
[INFO] [stdout]  --> src/core/concurrency.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct RateLimiter {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `acquire` are never used
[INFO] [stdout]   --> src/core/concurrency.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl RateLimiter {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(max_concurrent: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub async fn acquire(&self) -> tokio::sync::SemaphorePermit<'_> {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShardedCache` is never constructed
[INFO] [stdout]   --> src/core/concurrency.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ShardedCache<K, V> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used
[INFO] [stdout]   --> src/core/concurrency.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | / impl<K, V> ShardedCache<K, V>
[INFO] [stdout] 27 | | where
[INFO] [stdout] 28 | |     K: std::hash::Hash + Eq + Clone + Send + Sync + 'static,
[INFO] [stdout] 29 | |     V: Clone + Send + Sync + 'static,
[INFO] [stdout]    | |_____________________________________- associated items in this implementation
[INFO] [stdout] 30 |   {
[INFO] [stdout] 31 |       pub fn new(max_concurrent: usize) -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |       pub async fn get(&self, key: &K) -> Option<V> {
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |       pub async fn set(&self, key: K, value: V) {
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]  --> src/domain/entities/product.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Product {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     description: Option<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Product` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_discount`, `update_stock`, and `restock` are never used
[INFO] [stdout]   --> src/domain/entities/product.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Product {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn remove_discount(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn update_stock(&mut self, quantity: u32, expected_version: u64) -> DomainResult<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn restock(&mut self, quantity: u32) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]   --> src/domain/value_objects.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl EntityId {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub fn parse(s: &str) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EUR` and `RUB` are never constructed
[INFO] [stdout]   --> src/domain/value_objects.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum Currency {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 30 |     USD,
[INFO] [stdout] 31 |     EUR,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 32 |     RUB,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Currency` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `currency` and `add` are never used
[INFO] [stdout]   --> src/domain/value_objects.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Money {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn currency(&self) -> &Currency {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn add(&self, other: &Money) -> Result<Money, String> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `deactivate` is never used
[INFO] [stdout]    --> src/domain/value_objects.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Discount {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn deactivate(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OrderStatus` is never used
[INFO] [stdout]  --> src/domain/aggregates/order.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum OrderStatus {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrderItem` is never constructed
[INFO] [stdout]   --> src/domain/aggregates/order.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct OrderItem {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Order` is never constructed
[INFO] [stdout]   --> src/domain/aggregates/order.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Order {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/domain/aggregates/order.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Order {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 35 |     pub fn create(user_id: EntityId) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn id(&self) -> &EntityId { &self.id }
[INFO] [stdout]    |            ^^
[INFO] [stdout] 49 |     pub fn user_id(&self) -> &EntityId { &self.user_id }
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 50 |     pub fn status(&self) -> &OrderStatus { &self.status }
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 51 |     pub fn total(&self) -> &Money { &self.total }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 52 |     pub fn items(&self) -> &[OrderItem] { &self.items }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 53 |     
[INFO] [stdout] 54 |     pub fn add_item(&mut self, product_id: EntityId, product_name: String, 
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn confirm(&mut self) -> DomainResult<()> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn pay(&mut self) -> DomainResult<()> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn cancel(&mut self) -> DomainResult<()> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_by_name` and `find_with_discount` are never used
[INFO] [stdout]   --> src/application/services/product_service.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait ProductRepository: Repository<Product, String> + Send + Sync {
[INFO] [stdout]    |           ----------------- methods in this trait
[INFO] [stdout] 12 |     async fn find_by_name(&self, name: &str) -> DomainResult<Vec<Product>>;
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 13 |     async fn find_with_discount(&self) -> DomainResult<Vec<Product>>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `db_pool`, `redis`, and `event_bus` are never read
[INFO] [stdout]   --> src/interfaces/api/state.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct AppState {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  9 |     pub product_service: Arc<ProductService<PostgresProductRepository>>,
[INFO] [stdout] 10 |     pub db_pool: PgPool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 11 |     pub redis: RedisClient,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 12 |     pub event_bus: Arc<InMemoryEventBus>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `auth_middleware` is never used
[INFO] [stdout]  --> src/interfaces/middleware/auth.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub async fn auth_middleware(
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthenticatedUser` is never constructed
[INFO] [stdout]   --> src/interfaces/middleware/auth.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct AuthenticatedUser(pub String);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 48.62s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v0.24.0, sqlx-postgres v0.7.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "19719749337cc622742776ce10f1fe99d4599ffeb367ba658153e640a185283b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "19719749337cc622742776ce10f1fe99d4599ffeb367ba658153e640a185283b", kill_on_drop: false }`
[INFO] [stdout] 19719749337cc622742776ce10f1fe99d4599ffeb367ba658153e640a185283b
